<?php
/**
 * 对分类数据的操作封装
 * 
 * @author kaikaic
 * @date 2018-04-09
 *
 */

namespace app\exam\model;
use think\Db;

class CategoryModel {
	
	public static $table = "SystemCategory";
	
	/**
	 * 指定分类下的所有二级分类
	 * pid=0,列出所有根分类
	 */
	public static function getChildren($pid=0) {
		$category = Db::name(self::$table)->where('pid', $pid)->order('sort asc')->select();
		
		return $category;
	}
	
	/**
	 * 通过分类简写读取分类下的所有二级分类
	 */
	public static function getChildrenByAbbr($abbr) {
		if (!$abbr) {
			return array();
		}
		
		$category = self::getCategoryByAbbr($abbr);
		if ($category == null) {
			return array();
		}
		
		return self::getChildren($category['id']);
	}
	
	/**
	 * 根据分类简写读取分类信息
	 */
	public static function getCategoryByAbbr($abbr) {
		if (!$abbr) {
			return array();
		}
		
		return Db::name(self::$table)->where('abbr', $abbr)->find();
	}
	
	/**
	 * 数组转化为Key-Value格式
	 */
	public static function arrayToKV($cateArray, $key="id", $value="name") {
		$kvArray = array();
		for ($i=0; $i<count($cateArray); $i++) {
			$kvArray[$cateArray[$i][$key]] = $cateArray[$i][$value]; 
		}
		
		return $kvArray;
	} 
}
